RCAD script
1.00
nuage
nuageup.bmp
nuagedown.bmp
0
0
0




















Dim s_nb, s_i, s_k, s_nbp, s_inc as integer
Dim s_x1, s_y1, s_x2, s_y2, s_xc, s_yc, s_r, s_angle, s_angle1, s_angle2, s_xcc as double

sub angle2points(fx1 as double, fy1 as double, fx2 as double, fy2 as double)
Dim s_dx, s_dy as double
   //Calcul angle
   s_dx = fx1 - fx2
   s_dy = fy1 - fy2
  
   if s_dx <> 0 then
      s_angle = abs(Atan(s_dy / s_dx))
      if s_dx > 0 then
         if s_dy < 0 then
            s_angle = 6.283185307179586 - s_angle
         end if
      else
         if s_dy > 0 then
            s_angle = 3.141592653589793 - s_angle
         else
            s_angle = 3.141592653589793 + s_angle
         end if
      end if
   else
      if s_dy = 0 then
         s_angle = 0
      else
         if s_dy > 0 then
            s_angle = 1.570796326794897
         else
            s_angle = 4.71238898038469
         end if
      end if
   end if
   s_angle = s_angle * 180 / 3.141592653589793
end sub

s_xcc = (firstx + lastx) / 2
Add_Oval(firstx, firsty, lastx, lasty, 1, 7, 0,false, 100, 100)
DoConvertObjectToPolygon(Dim_Liste)
s_nb = Dim_Liste

s_nbp = -1    //recherche du nombre de point
Do Until XValueObjet_Point(s_nb, s_nbp + 1, 0) = -1
    s_nbp = s_nbp + 1
Loop
s_inc = 6 * s_nbp / 144

s_x2 = XValueObjet_Point(s_nb,0,0)
s_y2 = YValueObjet_Point(s_nb,0,0)
s_i = 0
Do
   s_i = s_i + s_inc + round(s_inc * Rnd)
   if s_i > s_nbp - 4 then
      s_i = s_nbp
   end if
   s_x1 = s_x2
   s_y1 = s_y2
   s_x2 = XValueObjet_Point(s_nb,s_i,0)
   s_y2 = YValueObjet_Point(s_nb,s_i,0)
   s_xc = (s_x1 + s_x2) / 2
   s_yc = (s_y1 + s_y2) / 2
   s_r = sqrt(Pow(s_x1- s_xc,2) + Pow(s_y1 - s_yc,2))
   angle2points(s_xc, s_yc, s_x1, s_y1)
   s_angle1 = s_angle
   angle2points(s_xc, s_yc, s_x2, s_y2)
   s_angle2 = s_angle
   if s_xcc > s_xc then
      Add_Arc(s_xc, s_yc, s_r, s_r, s_angle1, s_angle2 - s_angle1, 3, 7, 0, False, False, False, False, 100, 100)
   else
      Add_Arc(s_xc, s_yc, s_r, s_r, s_angle1, s_angle1 - s_angle2, 3, 7, 0, False, False, False, False, 100, 100)
   end if
Loop until s_i >= s_nbp

Delete_Objet(s_nb, False)
